package com.zb.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zb.entity.AccounLoginInfo;
import com.zb.entity.ZjWorkOrderByField;
import com.zb.vo.OrderTableInitOrderByFieldVo;
import com.zb.vo.WorkInitOrderByFieldVo;
import com.zb.vo.WorkOrderByFieldVo;

import java.util.List;

/**
 * <p>
 * 工单列表排序字段表 服务类
 * </p>
 *
 * @author WEN
 * @since 2024-01-24
 */
public interface ZjWorkOrderByFieldService extends IService<ZjWorkOrderByField> {

    /**
     * 新增或修改工单列表排序字段
     * @param loginInfo 登录账号
     * @param type 类型：1-工单列表，2-存档列表，3-结算列表
     * @param fieldVos 工单排序字段集合
     */
    void save(AccounLoginInfo loginInfo, Integer type, List<WorkOrderByFieldVo> fieldVos);

    /**
     * 获取工单列表排序初始化字字段
     * @return
     */
    List<OrderTableInitOrderByFieldVo> getOrderTableInitOrderByField();

    /**
     * 获取工单列表排序字段设置
     * @param loginInfo
     * @param type 类型：1-工单列表，2-存档列表，3-结算列表
     * @return
     */
    List<WorkInitOrderByFieldVo> getOrderTableOrderByField(AccounLoginInfo loginInfo, Integer type);

    /**
     * 根据商家账号信息 & 排序字段类型获取排序字段
     * @param loginInfo 登录信息
     * @param listType 类型：1-工单列表，2-存档列表，3-结算列表
     * @param type    排序字段类型：null-全部工单，1-待派单，2-待服务商确认，3-处理中，4-已完成，5-已取消，1001-结单审核
     * @return
     */
    String getOrderTableOrderByFieldByCustAccIdAndAccountIdAndType(AccounLoginInfo loginInfo, Integer listType, Integer type);

}
